Hauptseite Zu yanwittmann.de

Zur Hauptseite

    2. Elementare Sprachelemente in Java    

Software >> Java & OOP



Kommentare

Durch die Kommentierung des Quellcodes wird die Lesbarkeit und Teamwork erleichtert und man kann die Gedankengänge hinter den Algorithmen dokumentieren. Das, was in einem Kommentar steht, wird vom Programm später ignoriert, das heißt, man kann alles schreiben, was man möchte, ohne eine bestimmte Syntax befolgen zu müssen.
Kommentare werden durch folgende Zeichenketten ein-/ausgeleitet:

                                                                                   
TypJavaJS
einzeilliger Kommentar// ...// ...
mehrzeilliger Kommentar/*
...
*/
/*
...
*/
JavaDocs/**
...
*/

z.B.

//initialisierung einer Variable:     
int x = 0;
Java


Reservierte Schlüsselwörter

Diese Wörter sind in einer Sprache bereits vordefiniert, man darf sie also z.B. nicht als Variablennamen verwenden. In Java sind einige dieser:
abstract boolean break byte catch case char class const continue default do double if else extends implements import instanceof long native new package private protected public return short static super switch synchronized this throw throws transient try void volatile while
Hier noch einige für C:
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while


Einfache Datentypen

In Java gibt es folgende primitiven Datentypen:

                                                                                                                                                                                            
TypBitsHinweis
boolean1Wahrheitswert, entweder wahr oder falsch (true / false)
byte8-128 ... 0 ... 127
char160 ... 65535; wird i.d.R. für einzelne Zeichen verwendet
short16-215 ... 215 - 1; kleine Ganzzahlen
int32-231 ... 231 - 1; Ganzzahlen
long64-263 ... 263 - 1; sehr große Ganzzahlen (z.B. Millisekunden seit Unix Epoch)
float32Fließkommazahlen
double64Genauere Fließkommazahlen

'Primitiv' oder 'Einfach' bedeutet, dass sie nicht weiter in andere Datentypen unterteilbar sind, so wie es Objekte, die von Klassen erzeugt wurden, sind. Ihnen ist ein konkreter Wert zugeordnet und nicht weitere Referenzen auf andere Objekte oder primitive Daten.
Man kann erkennen, dass es sich um einen primitiven Datentyp handelt, indem man auf den ersten Buchstaben des Typs schaut: Nur wenn dieser klein geschrieben ist, ist es ein primitiver Typ (z.B. int). So ist z.B. ein String (also ein Text) ein Objekt einer Klasse und kein primitiver Typ.


Variablen / Konstanten

Eine Variable (oder Konstante) ist nichts anderes als eine Schublade, die im Hauptspeicher liegt und Werte enthalten kann.
Um die benötigte 'Schubladengröße' zu bestimmen verwendet das Programm den zugeordneten Datentyp: z.B. int, char (siehe Tabelle oben).
Variablen haben einen Namen, den man vor der Verwendung festlegen muss. Dieser Name muss gewissen Kriterien entsprechen, doch dazu später mehr.

Der Unterschied zwischen Variablen und Konstanten:

                                                               
VariablenKonstanten
Es können beliebig oft neue Werte zugeordnet werdenIhnen wird ein einziges mal ein Wert zugeordnet
Es kann schreibend und lesend zugegriffen werdenEs kann nur lesend zugegriffen werden
DatenTyp variablenName;
final static DatenTyp VARIABLEN_NAME = wert;

Also, um eine Variable zu initialisieren (zu definieren), muss man in Java einfach den Datentyp und dann den Namen der Variable schreiben:
Allgemein: DatenTyp VariablenName;
Beispiel:     String einText;
Wenn es sich um eine Konstante handelt, muss man zudem noch final und static als Schlüsselwörter hinzufügen.

Wichtig ist, dass man diese Variablen und Konstanten vor dem ersten Lesezugriff erst einmal beschreiben muss, ansonsten weiß das Programm nicht, was für einen Wert die Variable hat und wirft einen Fehler und das Programm wird gestoppt.


Bezeichner / Namen

Wie sollte man seine Variablen benennen?
An diese Regeln muss man sich bei der Benennung halten:

Also:

                                                              
VariablenKonstanten
Erlaubtt123, ichBinEineVariable, ein_textIST_VORHANDEN, INPUT_TEMPLATE, kannManSollteManAberNicht
Verbotengroß/klein, 1test, LDF-NRHMMM..., ICH_BIN_TOLL_&_SO


Zuweisung

Doch wie setzt man den Wert einer Variable? Sagen wir, wir haben folgende integer Variable (= Ganzzahl) deklariert:
int meinWert;
Um den Wert der Variable zu setzen, muss man lediglich den Variablenname, ein = und den zuzuordnenden Wert hintereinander schreiben:
meinWert = 12;

Doch man kann nicht einfach nur einen Wert zuordnen, sondern auch das Ergebnis eines ganzen Ausdrucks:

int anzahl = 3;     
int gewicht = 23;     
int gesamtGewicht = anzahl * gewicht;     
Java

Zunächst werden also die Werte der Variablen anzahl und gewicht aus dem Speicher geladen, multipliziert und das Ergebnis der Variable gesamtGewicht zugeordnet.


Operationen

Doch was gibt es für Operationen, mit denen wir die Ausdrücke erstellen können? Es gibt für unterschiedliche Datentypen auch unterschiedliche Operationen.
Diese hier liefern einen boolean zurück, also true oder false:

                                                                                                                                                                                            
OperatorErklärungBeispiel
==Gleichheit12 == 45false
!=Ungleichheit33 != 89true
&&logisches UNDtrue && truetrue
||logisches ODERtrue || falsetrue
>Größer23 > 5true
<Kleiner23 < 5false
<=Kleiner gleich23 <= 5false
>=Größer gleich23 >= 23true

Für Rechenoperationen mit Ganzzahlen oder Fließkommazahlen gibt es diese hier:

                                                                                                                                                                                                                                
OperatorErklärungBeispiel
Arithmetische+Addition7 + 9 = 16
-
Subtraktion20 - 5 = 15
*Multiplikation10 * 70 = 700
/Division15 / 3 = 5
%Modulo (Divisionsrest)12 % 5 = 2
Unäre-Negation-10
~Bitweise Komplement~10010 = 01101
++Inkrementa++ = a + 1
--Dekrementa-- = a - 1

Höhere Sprachen wie Java können beliebig komplexe Ausdrücke dieser Art richtig auflösen und befolgen Klammer-vor-Punkt-vor-Strich.
int a = (34 * 3 + 6 / 2) % 6;
→ a = 3


Aufgaben

    Frage 1
Was für primitive Datentypen gibt es in Java?

    Frage 2
Lesend und/oder schreibend: Wie kann auf eine Variable/Konstante zugegriffen werden?

    Frage 3
Wie erstellt man in Java einen Blockkommentar?

    Frage 4
Was sind die Regeln, wie man eine Variable/Konstante benennen darf?

    Frage 5
Denk dir 5 gültige Variablennamen und 5 gültige Konstantennamen aus!

    Frage 6
Bestimme: (2 == 7) || (3 != 0) und (8 > 7) && ((77 % 10) == 5)

    Frage 7
Was ist der Unterschied zwischen Deklarieren und Initialisieren?

    Frage 8
Initialisiere eine Kommazahl-Variable x und setze ihren Wert auf das dreifache von k